#ifndef __CIRCLE_H__
#define __CIRCLE_H__

#define DEFAULT_BALL_SPEED 6

#include <typeinfo>
#include "Shape.h"
#include "Rectangle.h"
#include "Elipse.h"
#include "Triangle.h"
#include "PlayerData.h"

enum CircleType{ BALL, DIFUSSER };

class Circle : public Shape {

	private:
		int radio;
		Point* posicion;
		SDLDrawManager manager;
	    SDLDrawElement SDLElem;
	    char pTexture[100];
	    int r,g,b;
		CircleType type;
	
	public:
		Circle(); // Constructor.
		virtual ~Circle(); // Destructor.

		// GET y SET para cada atributo.
	
		void setRadio(int nuevoRadio);

		int getRadio();
		
	    void setPosicion(Point* point);

		Point* getPosicion();

	   	void draw(SDL_Surface *screen);
		
		void drawTexture(SDL_Surface * auxSurface,int thickness);

		int serialize(Element* elem);

		void hydrate(Element* elem);

		void fillColor(SDL_Surface *screen, int thickness);

		void fillThickness(SDL_Surface *screen, int thickness);

		void collide(Shape* shape, Point* puntoChoque);

		void update();

		CircleType getType();
		void setType(CircleType newType);

};



#endif __CIRCLE_H__